package com.catmiao.spark.rdd.builder

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @title: RDD_Create_01_Memory
 * @projectName spark_study
 * @description: TODO
 * @author ChengMiao
 * @date 2024/2/1 11:33
 */
object RDD_Create_02_File_Par_1 {

  def main(args: Array[String]): Unit = {

    val sparkCon = new SparkConf().setMaster("local[*]").setAppName("rdd")

    val sparkContext = new SparkContext(sparkCon)



    // 数据分区的分配
    // 1. 数据以行为单位进行读取，采用hadoop的方式，和字节数没有关系
    // 2. 读取数据时以偏移量为单位，偏移量不会被重复读取
    //    11@   => 012
    //    22@   => 345
    //    334   => 678
    // 3. 数据分区的偏移量范围计算
    //  9 /2 == 4 .. 1
    //  0 => [0,4]
    //  1 => [4,8]
    //  2 => [8,9]

    // 因为是一行一行读取的 读取第二行到0号分区时将第二行的数据都写入0号分区
    // [11@22@] [334] []
    val rdd: RDD[String] = sparkContext.textFile("datas/1.txt",2)


    rdd.saveAsTextFile("output")


    sparkContext.stop()

  }

}
